namespace ext.data
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// The Store class encapsulates a client side cache of {@link Ext.data.Record Record}
	/// objects which provide input data for Components such as the {@link Ext.grid.GridPanel GridPanel},
	/// the {@link Ext.form.ComboBox ComboBox}, or the {@link Ext.DataView DataView}.  Retrieving Data  A Store object may access a data object using:   {@link #proxy configured implementation} of {@link Ext.data.DataProxy DataProxy}  {@link #data} to automatically pass in data  {@link #loadData} to manually pass in data     Reading Data  A Store object has no inherent knowledge of the format of the data object (it could be
	/// an Array, XML, or JSON). A Store object uses an appropriate {@link #reader configured implementation}
	/// of a {@link Ext.data.DataReader DataReader} to create {@link Ext.data.Record Record} instances from the data
	/// object.  Store Types  There are several implementations of Store available which are customized for use with
	/// a specific DataReader implementation. Here is an example using an...
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;The Store class encapsulates a client side cache of {@link Ext.data.Record Record}
	/// objects which provide input data for Components such as the {@link Ext.grid.GridPanel GridPanel},
	/// the {@link Ext.form.ComboBox ComboBox}, or the {@link Ext.DataView DataView}.&lt;/p&gt;
	/// &lt;p&gt;&lt;u&gt;Retrieving Data&lt;/u&gt;&lt;/p&gt;
	/// &lt;p&gt;A Store object may access a data object using:&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
	/// &lt;li&gt;{@link #proxy configured implementation} of {@link Ext.data.DataProxy DataProxy}&lt;/li&gt;
	/// &lt;li&gt;{@link #data} to automatically pass in data&lt;/li&gt;
	/// &lt;li&gt;{@link #loadData} to manually pass in data&lt;/li&gt;
	/// &lt;/ul&gt;&lt;/div&gt;&lt;/p&gt;
	/// &lt;p&gt;&lt;u&gt;Reading Data&lt;/u&gt;&lt;/p&gt;
	/// &lt;p&gt;A Store object has no inherent knowledge of the format of the data object (it could be
	/// an Array, XML, or JSON). A Store object uses an appropriate {@link #reader configured implementation}
	/// of a {@link Ext.data.DataReader DataReader} to create {@link Ext.data.Record Record} instances from the data
	/// object.&lt;/p&gt;
	/// &lt;p&gt;&lt;u&gt;Store Types&lt;/u&gt;&lt;/p&gt;
	/// &lt;p&gt;There are several implementations of Store available which are customized for use with
	/// a specific DataReader implementation. Here is an example using an ArrayStore which implicitly
	/// creates a reader commensurate to an Array data object.&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// var myStore = new Ext.data.ArrayStore({
	/// fields: [&apos;fullname&apos;, &apos;first&apos;],
	/// idIndex: 0 // id for each record will be the first element
	/// });
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;For custom implementations create a basic {@link Ext.data.Store} configured as needed:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// // create a {@link Ext.data.Record Record} constructor:
	/// var rt = Ext.data.Record.create([
	/// {name: &apos;fullname&apos;},
	/// {name: &apos;first&apos;}
	/// ]);
	/// var myStore = new Ext.data.Store({
	/// // explicitly create reader
	/// reader: new Ext.data.ArrayReader(
	/// {
	/// idIndex: 0 // id for each record will be the first element
	/// },
	/// rt // recordType
	/// )
	/// });
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;Load some data into store (note the data object is an array which corresponds to the reader):&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// var myData = [
	/// [1, &apos;Fred Flintstone&apos;, &apos;Fred&apos;], // note that id for the record is the first element
	/// [2, &apos;Barney Rubble&apos;, &apos;Barney&apos;]
	/// ];
	/// myStore.loadData(myData);
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;Records are cached and made available through accessor functions. An example of adding
	/// a record to the store:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// var defaultData = {
	/// fullname: &apos;Full Name&apos;,
	/// first: &apos;First Name&apos;
	/// };
	/// var recId = 100; // provide unique id for the record
	/// var r = new myStore.recordType(defaultData, ++recId); // create new record
	/// myStore.{@link #insert}(0, r); // insert a new record into the store (also see {@link #add})
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;&lt;u&gt;Writing Data&lt;/u&gt;&lt;/p&gt;
	/// &lt;p&gt;And &lt;b&gt;new in Ext version 3&lt;/b&gt;, use the new {@link Ext.data.DataWriter DataWriter} to create an automated, &lt;a href=&quot;http://extjs.com/deploy/dev/examples/writer/writer.html&quot;&gt;Writable Store&lt;/a&gt;
	/// along with &lt;a href=&quot;http://extjs.com/deploy/dev/examples/restful/restful.html&quot;&gt;RESTful features.&lt;/a&gt;
	/// </htmlSummary>
	/// <definedin>src\data\Store.js</definedin>
	[ScriptName("Store")]
	[ScriptNamespace("Ext.data")]
	[Imported()]
	public partial class Store : ext.util.Observable
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">
		/// A config object containing the objects needed for the Store to access data,
		/// and read the data into Records.
		/// </param>
		public Store(ext.data.Store_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public Store()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// If passed, the id to use to register with the {@link Ext.StoreMgr StoreMgr}.
		/// Note: if a (deprecated) {@link #id} is specified it will supersede the storeId
		/// assignment.
		/// </summary>
		/// <htmlSummary>
		/// If passed, the id to use to register with the &lt;b&gt;{@link Ext.StoreMgr StoreMgr}&lt;/b&gt;.
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: if a (deprecated) &lt;tt&gt;{@link #id}&lt;/tt&gt; is specified it will supersede the &lt;tt&gt;storeId&lt;/tt&gt;
		/// assignment.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("storeId")]
		public string StoreId;
		
		/// <summary>
		/// If a {@link #proxy} is not specified the url will be used to
		/// implicitly configure a {@link Ext.data.HttpProxy HttpProxy} if an url is specified.
		/// Typically this option, or the {@link #data} option will be specified.
		/// </summary>
		/// <htmlSummary>
		/// If a &lt;tt&gt;{@link #proxy}&lt;/tt&gt; is not specified the &lt;tt&gt;url&lt;/tt&gt; will be used to
		/// implicitly configure a {@link Ext.data.HttpProxy HttpProxy} if an &lt;tt&gt;url&lt;/tt&gt; is specified.
		/// Typically this option, or the &lt;code&gt;{@link #data}&lt;/code&gt; option will be specified.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("url")]
		public string Url;
		
		/// <summary>
		/// If {@link #data} is not specified, and if autoLoad
		/// is true or an Object, this store&apos;s {@link #load} method is automatically called
		/// after creation. If the value of autoLoad is an Object, this Object will
		/// be passed to the store&apos;s {@link #load} method.
		/// </summary>
		/// <htmlSummary>
		/// If &lt;tt&gt;{@link #data}&lt;/tt&gt; is not specified, and if &lt;tt&gt;autoLoad&lt;/tt&gt;
		/// is &lt;tt&gt;true&lt;/tt&gt; or an &lt;tt&gt;Object&lt;/tt&gt;, this store&apos;s {@link #load} method is automatically called
		/// after creation. If the value of &lt;tt&gt;autoLoad&lt;/tt&gt; is an &lt;tt&gt;Object&lt;/tt&gt;, this &lt;tt&gt;Object&lt;/tt&gt; will
		/// be passed to the store&apos;s {@link #load} method.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("autoLoad")]
		public ext.auto.System_Boolean_Or_System_Object AutoLoad;
		
		/// <summary>
		/// The {@link Ext.data.DataProxy DataProxy} object which provides
		/// access to a data object. See {@link #url}.
		/// </summary>
		/// <htmlSummary>
		/// The {@link Ext.data.DataProxy DataProxy} object which provides
		/// access to a data object. See &lt;code&gt;{@link #url}&lt;/code&gt;.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("proxy")]
		public ext.data.DataProxy Proxy;
		
		/// <summary>
		/// An inline data object readable by the {@link #reader}.
		/// Typically this option, or the {@link #url} option will be specified.
		/// </summary>
		/// <htmlSummary>
		/// An inline data object readable by the &lt;code&gt;{@link #reader}&lt;/code&gt;.
		/// Typically this option, or the &lt;code&gt;{@link #url}&lt;/code&gt; option will be specified.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("data")]
		public System.Array Data;
		
		/// <summary>
		/// The {@link Ext.data.DataReader Reader} object which processes the
		/// data object and returns an Array of {@link Ext.data.Record} objects which are cached keyed by their
		/// {@link Ext.data.Record#id id} property.
		/// </summary>
		/// <htmlSummary>
		/// The {@link Ext.data.DataReader Reader} object which processes the
		/// data object and returns an Array of {@link Ext.data.Record} objects which are cached keyed by their
		/// &lt;b&gt;&lt;tt&gt;{@link Ext.data.Record#id id}&lt;/tt&gt;&lt;/b&gt; property.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("reader")]
		public ext.data.DataReader Reader;
		
		/// <summary>
		/// The {@link Ext.data.DataWriter Writer} object which processes a record object for being written
		/// to the server-side database.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The {@link Ext.data.DataWriter Writer} object which processes a record object for being written
		/// to the server-side database.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;When a writer is installed into a Store the {@link #add}, {@link #remove}, and {@link #update}
		/// events on the store are monitored in order to remotely {@link #createRecords create records},
		/// {@link #destroyRecord destroy records}, or {@link #updateRecord update records}.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;The proxy for this store will relay any {@link #writexception} events to this store.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;Sample implementation:
		/// &lt;pre&gt;&lt;code&gt;
		/// var writer = new {@link Ext.data.JsonWriter}({
		/// encode: true,
		/// writeAllFields: true // write all fields, not just those that changed
		/// });
		///
		/// // Typical Store collecting the Proxy, Reader and Writer together.
		/// var store = new Ext.data.Store({
		/// storeId: &apos;user&apos;,
		/// root: &apos;records&apos;,
		/// proxy: proxy,
		/// reader: reader,
		/// writer: writer, // &lt;-- plug a DataWriter into the store just as you would a Reader
		/// paramsAsHash: true,
		/// autoSave: false // &lt;-- false to delay executing create, update, destroy requests
		/// // until specifically told to do so.
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("writer")]
		public ext.data.DataWriter Writer;
		
		/// <summary>
		/// An object containing properties which are to be sent as parameters
		/// for every HTTP request.  Parameters are encoded as standard HTTP parameters using {@link Ext#urlEncode}.  Note: baseParams may be superseded by any params
		/// specified in a {@link #load} request, see {@link #load}
		/// for more details. 
		/// This property may be modified after creation using the {@link #setBaseParam}
		/// method.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;An object containing properties which are to be sent as parameters
		/// for &lt;i&gt;every&lt;/i&gt; HTTP request.&lt;/p&gt;
		/// &lt;p&gt;Parameters are encoded as standard HTTP parameters using {@link Ext#urlEncode}.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: &lt;code&gt;baseParams&lt;/code&gt; may be superseded by any &lt;code&gt;params&lt;/code&gt;
		/// specified in a &lt;code&gt;{@link #load}&lt;/code&gt; request, see &lt;code&gt;{@link #load}&lt;/code&gt;
		/// for more details.&lt;/p&gt;
		/// This property may be modified after creation using the &lt;code&gt;{@link #setBaseParam}&lt;/code&gt;
		/// method.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("baseParams")]
		public object BaseParams;
		
		/// <summary>
		/// A config object to specify the sort order in the request of a Store&apos;s
		/// {@link #load} operation. Note that for local sorting, the direction property is
		/// case-sensitive. See also {@link #remoteSort} and {@link #paramNames}.
		/// For example: 
		/// sortInfo: {
		/// field: &apos;fieldName&apos;,
		/// direction: &apos;ASC&apos; // or &apos;DESC&apos; (case sensitive for local sorting)
		/// }
		/// </summary>
		/// <htmlSummary>
		/// A config object to specify the sort order in the request of a Store&apos;s
		/// {@link #load} operation. Note that for local sorting, the &lt;tt&gt;direction&lt;/tt&gt; property is
		/// case-sensitive. See also {@link #remoteSort} and {@link #paramNames}.
		/// For example:&lt;pre&gt;&lt;code&gt;
		/// sortInfo: {
		/// field: &apos;fieldName&apos;,
		/// direction: &apos;ASC&apos; // or &apos;DESC&apos; (case sensitive for local sorting)
		/// }
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("sortInfo")]
		public object SortInfo;
		
		/// <summary>
		/// true if sorting is to be handled by requesting the {@link #proxy Proxy}
		/// to provide a refreshed version of the data object in sorted order, as opposed to sorting the Record cache
		/// in place (defaults to false).
		/// If remoteSort is true, then clicking on a {@link Ext.grid.Column Grid Column}&apos;s
		/// {@link Ext.grid.Column#header header} causes the current page to be requested from the server appending
		/// the following two parameters to the {@link #load params}:   sort : String The name (as specified in the Record&apos;s
		/// {@link Ext.data.Field Field definition}) of the field to sort on.   dir : String The direction of the sort, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive).
		/// </summary>
		/// <htmlSummary>
		/// &lt;tt&gt;true&lt;/tt&gt; if sorting is to be handled by requesting the &lt;tt&gt;{@link #proxy Proxy}&lt;/tt&gt;
		/// to provide a refreshed version of the data object in sorted order, as opposed to sorting the Record cache
		/// in place (defaults to &lt;tt&gt;false&lt;/tt&gt;).
		/// &lt;p&gt;If &lt;tt&gt;remoteSort&lt;/tt&gt; is &lt;tt&gt;true&lt;/tt&gt;, then clicking on a {@link Ext.grid.Column Grid Column}&apos;s
		/// {@link Ext.grid.Column#header header} causes the current page to be requested from the server appending
		/// the following two parameters to the &lt;b&gt;&lt;tt&gt;{@link #load params}&lt;/tt&gt;&lt;/b&gt;:&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;&lt;tt&gt;sort&lt;/tt&gt;&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;The &lt;tt&gt;name&lt;/tt&gt; (as specified in the Record&apos;s
		/// {@link Ext.data.Field Field definition}) of the field to sort on.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;&lt;tt&gt;dir&lt;/tt&gt;&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;The direction of the sort, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive).&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("remoteSort")]
		public bool RemoteSort;
		
		/// <summary>
		/// true to destroy the store when the component the store is bound
		/// to is destroyed (defaults to false).
		/// Note: this should be set to true when using stores that are bound to only 1 component.
		/// </summary>
		/// <htmlSummary>
		/// &lt;tt&gt;true&lt;/tt&gt; to destroy the store when the component the store is bound
		/// to is destroyed (defaults to &lt;tt&gt;false&lt;/tt&gt;).
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this should be set to true when using stores that are bound to only 1 component.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("autoDestroy")]
		public bool AutoDestroy;
		
		/// <summary>
		/// true to clear all modified record information each time
		/// the store is loaded or when a record is removed (defaults to false). See {@link #getModifiedRecords}
		/// for the accessor method to retrieve the modified records.
		/// </summary>
		/// <htmlSummary>
		/// &lt;tt&gt;true&lt;/tt&gt; to clear all modified record information each time
		/// the store is loaded or when a record is removed (defaults to &lt;tt&gt;false&lt;/tt&gt;). See {@link #getModifiedRecords}
		/// for the accessor method to retrieve the modified records.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("pruneModifiedRecords")]
		public bool PruneModifiedRecords;
		
		/// <summary>
		/// Defaults to true causing the store to automatically {@link #save} records to
		/// the server when a record is modified (ie: becomes &apos;dirty&apos;). Specify false to manually call {@link #save}
		/// to send all modifiedRecords to the server.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Defaults to &lt;tt&gt;true&lt;/tt&gt; causing the store to automatically {@link #save} records to
		/// the server when a record is modified (ie: becomes &apos;dirty&apos;). Specify &lt;tt&gt;false&lt;/tt&gt; to manually call {@link #save}
		/// to send all modifiedRecords to the server.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: each CRUD action will be sent as a separate request.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("autoSave")]
		public bool AutoSave;
		
		/// <summary>
		/// Defaults to true (unless {@link #restful}:true). Multiple
		/// requests for each CRUD action (CREATE, READ, UPDATE and DESTROY) will be combined
		/// and sent as one transaction. Only applies when {@link #autoSave} is set
		/// to false.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Defaults to &lt;tt&gt;true&lt;/tt&gt; (unless &lt;code&gt;{@link #restful}:true&lt;/code&gt;). Multiple
		/// requests for each CRUD action (CREATE, READ, UPDATE and DESTROY) will be combined
		/// and sent as one transaction. Only applies when &lt;code&gt;{@link #autoSave}&lt;/code&gt; is set
		/// to &lt;tt&gt;false&lt;/tt&gt;.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;If Store is RESTful, the DataProxy is also RESTful, and a unique transaction is
		/// generated for each record.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("batch")]
		public bool Batch;
		
		/// <summary>
		/// Defaults to false. Set to true to have the Store and the set
		/// Proxy operate in a RESTful manner. The store will automatically generate GET, POST,
		/// PUT and DELETE requests to the server. The HTTP method used for any given CRUD
		/// action is described in {@link Ext.data.Api#restActions}. For additional information
		/// see {@link Ext.data.DataProxy#restful}.
		/// Note: if {@link #restful}:truebatch will
		/// internally be set to false.
		/// </summary>
		/// <htmlSummary>
		/// Defaults to &lt;tt&gt;false&lt;/tt&gt;. Set to &lt;tt&gt;true&lt;/tt&gt; to have the Store and the set
		/// Proxy operate in a RESTful manner. The store will automatically generate GET, POST,
		/// PUT and DELETE requests to the server. The HTTP method used for any given CRUD
		/// action is described in {@link Ext.data.Api#restActions}. For additional information
		/// see {@link Ext.data.DataProxy#restful}.
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: if &lt;code&gt;{@link #restful}:true&lt;/code&gt; &lt;code&gt;batch&lt;/code&gt; will
		/// internally be set to &lt;tt&gt;false&lt;/tt&gt;.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("restful")]
		public bool Restful;
		
		/// <summary>
		/// An object containing properties which specify the names of the paging and
		/// sorting parameters passed to remote servers when loading blocks of data. By default, this
		/// object takes the following form:  
		/// {
		/// start : &apos;start&apos;, // The parameter name which specifies the start row
		/// limit : &apos;limit&apos;, // The parameter name which specifies number of rows to return
		/// sort : &apos;sort&apos;, // The parameter name which specifies the column to sort on
		/// dir : &apos;dir&apos; // The parameter name which specifies the sort direction
		/// }
		///  The server must produce the requested data block upon receipt of these parameter names.
		/// If different parameter names are required, this property can be overriden using a configuration
		/// property.  A {@link Ext.PagingToolbar PagingToolbar} bound to this Store uses this property to determine
		/// the parameter names to use in its {@link #load requests}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;An object containing properties which specify the names of the paging and
		/// sorting parameters passed to remote servers when loading blocks of data. By default, this
		/// object takes the following form:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
		/// {
		/// start : &apos;start&apos;, // The parameter name which specifies the start row
		/// limit : &apos;limit&apos;, // The parameter name which specifies number of rows to return
		/// sort : &apos;sort&apos;, // The parameter name which specifies the column to sort on
		/// dir : &apos;dir&apos; // The parameter name which specifies the sort direction
		/// }
		/// &lt;/code&gt;&lt;/pre&gt;
		/// &lt;p&gt;The server must produce the requested data block upon receipt of these parameter names.
		/// If different parameter names are required, this property can be overriden using a configuration
		/// property.&lt;/p&gt;
		/// &lt;p&gt;A {@link Ext.PagingToolbar PagingToolbar} bound to this Store uses this property to determine
		/// the parameter names to use in its {@link #load requests}.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("paramNames")]
		public object ParamNames;
		
		/// <summary>
		/// Provides the default values for the {@link #paramNames} property. To globally modify the parameters
		/// for all stores, this object should be changed on the store prototype.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("defaultParamNames")]
		public object DefaultParamNames;
		
		/// <summary>
		/// Fires when the data cache has changed in a bulk manner (e.g., it has been sorted, filtered, etc.) and a
		/// widget that is using this Store as a Record cache should refresh its view.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("datachangedEventName")]
		public const string DatachangedEventName = "datachanged";
		
		/// <summary>Fires when this store&apos;s reader provides new metadata (fields). This is currently only supported for JsonReaders.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("metachangeEventName")]
		public const string MetachangeEventName = "metachange";
		
		/// <summary>Fires when Records have been {@link #add}ed to the Store</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("addEventName")]
		public const string AddEventName = "add";
		
		/// <summary>Fires when a Record has been {@link #remove}d from the Store</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("removeEventName")]
		public const string RemoveEventName = "remove";
		
		/// <summary>Fires when a Record has been updated</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("updateEventName")]
		public const string UpdateEventName = "update";
		
		/// <summary>Fires when the data cache has been cleared.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("clearEventName")]
		public const string ClearEventName = "clear";
		
		/// <summary>
		/// Fires if an exception occurs in the Proxy during a remote request.
		/// This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#exception exception}
		/// for additional details.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Fires if an exception occurs in the Proxy during a remote request.
		/// This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#exception exception}
		/// for additional details.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("exceptionEventName")]
		public const string ExceptionEventName = "exception";
		
		/// <summary>
		/// Fires before a request is made for a new data object. If the beforeload handler returns
		/// false the {@link #load} action will be canceled.
		/// </summary>
		/// <htmlSummary>
		/// Fires before a request is made for a new data object. If the beforeload handler returns
		/// &lt;tt&gt;false&lt;/tt&gt; the {@link #load} action will be canceled.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforeloadEventName")]
		public const string BeforeloadEventName = "beforeload";
		
		/// <summary>Fires after a new set of Records has been loaded.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("loadEventName")]
		public const string LoadEventName = "load";
		
		/// <summary>
		/// This event is deprecated in favor of the catch-all {@link #exception}
		/// event instead.  This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#loadexception loadexception}
		/// for additional details.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;This event is &lt;b&gt;deprecated&lt;/b&gt; in favor of the catch-all &lt;b&gt;&lt;code&gt;{@link #exception}&lt;/code&gt;&lt;/b&gt;
		/// event instead.&lt;/p&gt;
		/// &lt;p&gt;This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#loadexception loadexception}
		/// for additional details.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("loadexceptionEventName")]
		public const string LoadexceptionEventName = "loadexception";
		
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforewriteEventName")]
		public const string BeforewriteEventName = "beforewrite";
		
		/// <summary>
		/// Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
		/// Success of the action is determined in the result[&apos;successProperty&apos;]property (NOTE for RESTful stores,
		/// a simple 20x response is sufficient for the actions &quot;destroy&quot; and &quot;update&quot;. The &quot;create&quot; action should should return 200 along with a database pk).
		/// </summary>
		/// <htmlSummary>
		/// Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
		/// Success of the action is determined in the &lt;code&gt;result[&apos;successProperty&apos;]&lt;/code&gt;property (&lt;b&gt;NOTE&lt;/b&gt; for RESTful stores,
		/// a simple 20x response is sufficient for the actions &quot;destroy&quot; and &quot;update&quot;. The &quot;create&quot; action should should return 200 along with a database pk).
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("writeEventName")]
		public const string WriteEventName = "write";
		
		/// <summary>Fires before a save action is called. A save encompasses destroying records, updating records and creating records.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforesaveEventName")]
		public const string BeforesaveEventName = "beforesave";
		
		/// <summary>Fires after a save is completed. A save encompasses destroying records, updating records and creating records.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("saveEventName")]
		public const string SaveEventName = "save";
		#endregion
		
		#region Properties
		/// <summary>True if this store is currently sorted by more than one field/direction combination.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("multiSort")]
		[IntrinsicProperty()]
		public bool MultiSort
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>True if the store has been destroyed already. Read only</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("isDestroyed")]
		[IntrinsicProperty()]
		public bool IsDestroyed
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>
		/// The {@link Ext.data.Record Record} constructor as supplied to (or created by) the
		/// {@link Ext.data.DataReader Reader}. Read-only.
		/// If the Reader was constructed by passing in an Array of {@link Ext.data.Field} definition objects,
		/// instead of a Record constructor, it will implicitly create a Record constructor from that Array (see
		/// {@link Ext.data.Record}.{@link Ext.data.Record#create create} for additional details).  This property may be used to create new Records of the type held in this Store, for example:  
		/// // create the data store
		/// var store = new Ext.data.ArrayStore({
		/// autoDestroy: true,
		/// fields: [
		/// {name: &apos;company&apos;},
		/// {name: &apos;price&apos;, type: &apos;float&apos;},
		/// {name: &apos;change&apos;, type: &apos;float&apos;},
		/// {name: &apos;pctChange&apos;, type: &apos;float&apos;},
		/// {name: &apos;lastChange&apos;, type: &apos;date&apos;, dateFormat: &apos;n/j h:ia&apos;}
		/// ]
		/// });
		/// store.loadData(myData);
		///
		/// // create the Grid
		/// var grid = new Ext.grid.EditorGridPanel({
		/// store: store,
		/// colModel: new Ext.grid.ColumnModel({
		/// columns: [
		/// {id:&apos;company&apos;, header: &apos;Company&apos;,...
		/// </summary>
		/// <htmlSummary>
		/// The {@link Ext.data.Record Record} constructor as supplied to (or created by) the
		/// {@link Ext.data.DataReader Reader}. Read-only.
		/// &lt;p&gt;If the Reader was constructed by passing in an Array of {@link Ext.data.Field} definition objects,
		/// instead of a Record constructor, it will implicitly create a Record constructor from that Array (see
		/// {@link Ext.data.Record}.{@link Ext.data.Record#create create} for additional details).&lt;/p&gt;
		/// &lt;p&gt;This property may be used to create new Records of the type held in this Store, for example:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
		/// // create the data store
		/// var store = new Ext.data.ArrayStore({
		/// autoDestroy: true,
		/// fields: [
		/// {name: &apos;company&apos;},
		/// {name: &apos;price&apos;, type: &apos;float&apos;},
		/// {name: &apos;change&apos;, type: &apos;float&apos;},
		/// {name: &apos;pctChange&apos;, type: &apos;float&apos;},
		/// {name: &apos;lastChange&apos;, type: &apos;date&apos;, dateFormat: &apos;n/j h:ia&apos;}
		/// ]
		/// });
		/// store.loadData(myData);
		///
		/// // create the Grid
		/// var grid = new Ext.grid.EditorGridPanel({
		/// store: store,
		/// colModel: new Ext.grid.ColumnModel({
		/// columns: [
		/// {id:&apos;company&apos;, header: &apos;Company&apos;, width: 160, dataIndex: &apos;company&apos;},
		/// {header: &apos;Price&apos;, renderer: &apos;usMoney&apos;, dataIndex: &apos;price&apos;},
		/// {header: &apos;Change&apos;, renderer: change, dataIndex: &apos;change&apos;},
		/// {header: &apos;% Change&apos;, renderer: pctChange, dataIndex: &apos;pctChange&apos;},
		/// {header: &apos;Last Updated&apos;, width: 85,
		/// renderer: Ext.util.Format.dateRenderer(&apos;m/d/Y&apos;),
		/// dataIndex: &apos;lastChange&apos;}
		/// ],
		/// defaults: {
		/// sortable: true,
		/// width: 75
		/// }
		/// }),
		/// autoExpandColumn: &apos;company&apos;, // match the id specified in the column model
		/// height:350,
		/// width:600,
		/// title:&apos;Array Grid&apos;,
		/// tbar: [{
		/// text: &apos;Add Record&apos;,
		/// handler : function(){
		/// var defaultData = {
		/// change: 0,
		/// company: &apos;New Company&apos;,
		/// lastChange: (new Date()).clearTime(),
		/// pctChange: 0,
		/// price: 10
		/// };
		/// var recId = 3; // provide unique id
		/// var p = new store.recordType(defaultData, recId); // create new record
		/// grid.stopEditing();
		/// store.{@link #insert}(0, p); // insert a new record into the store (also see {@link #add})
		/// grid.startEditing(0, 0);
		/// }
		/// }]
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("recordType")]
		[IntrinsicProperty()]
		public System.Delegate RecordType
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
		}
		
		/// <summary>
		/// A {@link Ext.util.MixedCollection MixedCollection} containing the defined {@link Ext.data.Field Field}s
		/// for the {@link Ext.data.Record Records} stored in this Store. Read-only.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("fields")]
		[IntrinsicProperty()]
		public ext.util.MixedCollection Fields
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
		}
		
		/// <summary>Object containing overall sort direction and an ordered array of sorter configs used when sorting on multiple fields</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("multiSortInfo")]
		[IntrinsicProperty()]
		public object MultiSortInfo
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Destroys the store.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("destroy")]
		public void Destroy()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Add Records to the Store and fires the {@link #add} event. To add Records
		/// to the store from a remote source use {@link #load}({add:true}).
		/// See also {@link #recordType} and {@link #insert}.
		/// </summary>
		/// <htmlSummary>
		/// Add Records to the Store and fires the {@link #add} event. To add Records
		/// to the store from a remote source use &lt;code&gt;{@link #load}({add:true})&lt;/code&gt;.
		/// See also &lt;code&gt;{@link #recordType}&lt;/code&gt; and &lt;code&gt;{@link #insert}&lt;/code&gt;.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="records">
		/// An Array of Ext.data.Record objects
		/// to add to the cache. See {@link #recordType}.
		/// </param>
		[ScriptName("add")]
		public void AddMethod(ext.data.RecordClass[] records)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// (Local sort only) Inserts the passed Record into the Store at the index where it
		/// should go based on the current sort information.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="record"></param>
		[ScriptName("addSorted")]
		public void AddSorted(ext.data.RecordClass record)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Remove a Record from the Store at the specified index. Fires the {@link #remove} event.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="index">The index of the record to remove.</param>
		[ScriptName("removeAt")]
		public void RemoveAt(System.Number index)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Remove all Records from the Store and fires the {@link #clear} event.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="silent">[false] Defaults to &lt;tt&gt;false&lt;/tt&gt;. Set &lt;tt&gt;true&lt;/tt&gt; to not fire clear event.</param>
		[ScriptName("removeAll")]
		public void RemoveAll(bool silent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Inserts Records into the Store at the given index and fires the {@link #add} event.
		/// See also {@link #add} and {@link #addSorted}.
		/// </summary>
		/// <htmlSummary>
		/// Inserts Records into the Store at the given index and fires the {@link #add} event.
		/// See also &lt;code&gt;{@link #add}&lt;/code&gt; and &lt;code&gt;{@link #addSorted}&lt;/code&gt;.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="index">The start index at which to insert the passed Records.</param>
		/// <param name="records">An Array of Ext.data.Record objects to add to the cache.</param>
		[ScriptName("insert")]
		public void Insert(System.Number index, ext.data.RecordClass[] records)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Get the index within the cache of the passed Record.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="record">The Ext.data.Record object to find.</param>
		/// <returns>The index of the passed Record. Returns -1 if not found.</returns>
		[ScriptName("indexOf")]
		public System.Number IndexOf(ext.data.RecordClass record)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Get the index within the cache of the Record with the passed id.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="id">The id of the Record to find.</param>
		/// <returns>The index of the Record. Returns -1 if not found.</returns>
		[ScriptName("indexOfId")]
		public System.Number IndexOfId(string id)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Get the Record with the specified id.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="id">The id of the Record to find.</param>
		/// <returns>The Record with the passed id. Returns undefined if not found.</returns>
		[ScriptName("getById")]
		public ext.data.RecordClass GetById(string id)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Get the Record at the specified index.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="index">The index of the Record to find.</param>
		/// <returns>The Record at the passed index. Returns undefined if not found.</returns>
		[ScriptName("getAt")]
		public ext.data.RecordClass GetAt(System.Number index)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Loads the Record cache from the configured {@link #proxy} using the configured {@link #reader}.</summary>
		/// <htmlSummary>
		/// &lt;p&gt;Loads the Record cache from the configured &lt;tt&gt;{@link #proxy}&lt;/tt&gt; using the configured &lt;tt&gt;{@link #reader}&lt;/tt&gt;.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;Notes:&lt;/p&gt;&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;&lt;u&gt;Important&lt;/u&gt;&lt;/b&gt;: loading is asynchronous! This call will return before the new data has been
		/// loaded. To perform any post-processing where information from the load call is required, specify
		/// the &lt;tt&gt;callback&lt;/tt&gt; function to be called, or use a {@link Ext.util.Observable#listeners a &apos;load&apos; event handler}.&lt;/li&gt;
		/// &lt;li&gt;If using {@link Ext.PagingToolbar remote paging}, the first load call must specify the &lt;tt&gt;start&lt;/tt&gt; and &lt;tt&gt;limit&lt;/tt&gt;
		/// properties in the &lt;code&gt;options.params&lt;/code&gt; property to establish the initial position within the
		/// dataset, and the number of Records to cache on each read from the Proxy.&lt;/li&gt;
		/// &lt;li&gt;If using {@link #remoteSort remote sorting}, the configured &lt;code&gt;{@link #sortInfo}&lt;/code&gt;
		/// will be automatically included with the posted parameters according to the specified
		/// &lt;code&gt;{@link #paramNames}&lt;/code&gt;.&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="options">
		/// An object containing properties which control loading options:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;&lt;tt&gt;params&lt;/tt&gt;&lt;/b&gt; :Object&lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;An object containing properties to pass as HTTP
		/// parameters to a remote data source. &lt;b&gt;Note&lt;/b&gt;: <c>params</c> will override any
		/// <c>{@link #baseParams}</c> of the same name.&lt;/p&gt;
		/// &lt;p&gt;Parameters are encoded as standard HTTP parameters using {@link Ext#urlEncode}.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;callback&lt;/b&gt; : Function&lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;A function to be called after the Records
		/// have been loaded. The callback is called after the load event is fired, and is passed the following arguments:&lt;ul&gt;
		/// &lt;li&gt;r : Ext.data.Record[] An Array of Records loaded.&lt;/li&gt;
		/// &lt;li&gt;options : Options object from the load call.&lt;/li&gt;
		/// &lt;li&gt;success : Boolean success indicator.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;scope&lt;/b&gt; : Object&lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;Scope with which to call the callback (defaults
		/// to the Store object)&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;add&lt;/b&gt; : Boolean&lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;Indicator to append loaded records rather than
		/// replace the current cache. &lt;b&gt;Note&lt;/b&gt;: see note for &lt;tt&gt;{@link #loadData}&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <returns>
		/// If the &lt;i&gt;developer&lt;/i&gt; provided &lt;tt&gt;{@link #beforeload}&lt;/tt&gt; event handler returns
		/// &lt;tt&gt;false&lt;/tt&gt;, the load call will abort and will return &lt;tt&gt;false&lt;/tt&gt;; otherwise will return &lt;tt&gt;true&lt;/tt&gt;.
		/// </returns>
		[ScriptName("load")]
		public bool LoadMethod(object options)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Saves all pending changes to the store. If the commensurate Ext.data.Api.actions action is not configured, then
		/// the configured {@link #url} will be used.
		/// 
		/// change url
		/// --------------- --------------------
		/// removed records Ext.data.Api.actions.destroy
		/// phantom records Ext.data.Api.actions.create
		/// {@link #getModifiedRecords modified records} Ext.data.Api.actions.update
		/// </summary>
		/// <htmlSummary>
		/// Saves all pending changes to the store. If the commensurate Ext.data.Api.actions action is not configured, then
		/// the configured &lt;code&gt;{@link #url}&lt;/code&gt; will be used.
		/// &lt;pre&gt;
		/// change url
		/// --------------- --------------------
		/// removed records Ext.data.Api.actions.destroy
		/// phantom records Ext.data.Api.actions.create
		/// {@link #getModifiedRecords modified records} Ext.data.Api.actions.update
		/// &lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>
		/// batch Returns a number to uniquely identify the &quot;batch&quot; of saves occurring. -1 will be returned
		/// if there are no items to save or the save was cancelled.
		/// </returns>
		[ScriptName("save")]
		public System.Number SaveMethod()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Gets the number of cached records.
		/// If using paging, this may not be the total size of the dataset. If the data object
		/// used by the Reader contains the dataset size, then the {@link #getTotalCount} function returns
		/// the dataset size. Note: see the Important note in {@link #load}.
		/// </summary>
		/// <htmlSummary>
		/// Gets the number of cached records.
		/// &lt;p&gt;If using paging, this may not be the total size of the dataset. If the data object
		/// used by the Reader contains the dataset size, then the {@link #getTotalCount} function returns
		/// the dataset size. &lt;b&gt;Note&lt;/b&gt;: see the Important note in {@link #load}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>The number of Records in the Store&apos;s cache.</returns>
		[ScriptName("getCount")]
		public System.Number GetCount()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Gets the total number of records in the dataset as returned by the server.
		/// If using paging, for this to be accurate, the data object used by the {@link #reader Reader}
		/// must contain the dataset size. For remote data sources, the value for this property
		/// (totalProperty for {@link Ext.data.JsonReader JsonReader},
		/// totalRecords for {@link Ext.data.XmlReader XmlReader}) shall be returned by a query on the server.
		/// Note: see the Important note in {@link #load}.
		/// </summary>
		/// <htmlSummary>
		/// Gets the total number of records in the dataset as returned by the server.
		/// &lt;p&gt;If using paging, for this to be accurate, the data object used by the {@link #reader Reader}
		/// must contain the dataset size. For remote data sources, the value for this property
		/// (&lt;tt&gt;totalProperty&lt;/tt&gt; for {@link Ext.data.JsonReader JsonReader},
		/// &lt;tt&gt;totalRecords&lt;/tt&gt; for {@link Ext.data.XmlReader XmlReader}) shall be returned by a query on the server.
		/// &lt;b&gt;Note&lt;/b&gt;: see the Important note in {@link #load}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>
		/// The number of Records as specified in the data object passed to the Reader
		/// by the Proxy.
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this value is not updated when changing the contents of the Store locally.&lt;/p&gt;
		/// </returns>
		[ScriptName("getTotalCount")]
		public System.Number GetTotalCount()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns an object describing the current sort state of this Store.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>
		/// The sort state of the Store. An object with two properties:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;field : String&lt;p class=&quot;sub-desc&quot;&gt;The name of the field by which the Records are sorted.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;direction : String&lt;p class=&quot;sub-desc&quot;&gt;The sort order, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive).&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// See &lt;tt&gt;{@link #sortInfo}&lt;/tt&gt; for additional details.
		/// </returns>
		[ScriptName("getSortState")]
		public object GetSortState()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sorts the contents of this store by multiple field/direction sorters. This is called internally by {@link sort}
		/// and would not usually be called manually.
		/// Multi sorting only currently applies to local datasets - multiple sort data is not currently sent to a proxy
		/// if remoteSort is used.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="sorters">Array of sorter objects (field and direction)</param>
		/// <param name="direction">Overall direction to sort the ordered results by (defaults to &quot;ASC&quot;)</param>
		[ScriptName("multiSort")]
		public void MultiSortMethod(System.Array sorters, string direction)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Gets all {@link Ext.data.Record records} modified since the last commit. Modified records are
		/// persisted across load operations (e.g., during paging). Note: deleted records are not
		/// included. See also {@link #pruneModifiedRecords} and
		/// {@link Ext.data.Record}{@link Ext.data.Record#markDirty markDirty}..
		/// </summary>
		/// <htmlSummary>
		/// Gets all {@link Ext.data.Record records} modified since the last commit. Modified records are
		/// persisted across load operations (e.g., during paging). &lt;b&gt;Note&lt;/b&gt;: deleted records are not
		/// included. See also &lt;tt&gt;{@link #pruneModifiedRecords}&lt;/tt&gt; and
		/// {@link Ext.data.Record}&lt;tt&gt;{@link Ext.data.Record#markDirty markDirty}.&lt;/tt&gt;.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>
		/// An array of {@link Ext.data.Record Records} containing outstanding
		/// modifications. To obtain modified fields within a modified record see
		/// {@link Ext.data.Record}&lt;tt&gt;{@link Ext.data.Record#modified modified}.&lt;/tt&gt;.
		/// </returns>
		[ScriptName("getModifiedRecords")]
		public ext.data.RecordClass[] GetModifiedRecords()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Revert to a view of the Record cache with no filtering applied.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="suppressEvent">
		/// If &lt;tt&gt;true&lt;/tt&gt; the filter is cleared silently without firing the
		/// {@link #datachanged} event.
		/// </param>
		[ScriptName("clearFilter")]
		public void ClearFilter(bool suppressEvent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns true if this store is currently filtered</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("isFiltered")]
		public bool IsFiltered()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Commit all Records with {@link #getModifiedRecords outstanding changes}. To handle updates for changes,
		/// subscribe to the Store&apos;s {@link #update update event}, and perform updating when the third parameter is
		/// Ext.data.Record.COMMIT.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("commitChanges")]
		public void CommitChanges()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>{@link Ext.data.Record#reject Reject} outstanding changes on all {@link #getModifiedRecords modified records}.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("rejectChanges")]
		public void RejectChanges()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Set the value for a property name in this store&apos;s {@link #baseParams}. Usage: 
		/// myStore.setBaseParam(&apos;foo&apos;, {bar:3});
		/// </summary>
		/// <htmlSummary>
		/// Set the value for a property name in this store&apos;s {@link #baseParams}. Usage:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
		/// myStore.setBaseParam(&apos;foo&apos;, {bar:3});
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="name">Name of the property to assign</param>
		/// <param name="value">Value to assign the &lt;tt&gt;name&lt;/tt&gt;d property</param>
		[ScriptName("setBaseParam")]
		public void SetBaseParam(string name, object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Remove Records from the Store and fires the {@link #remove} event.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="record">The record object or array of records to remove from the cache.</param>
		[ScriptName("remove")]
		public void RemoveMethod(ext.data.RecordClass record)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Remove Records from the Store and fires the {@link #remove} event.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="record">The record object or array of records to remove from the cache.</param>
		[ScriptName("remove")]
		public void RemoveMethod(ext.data.RecordClass[] record)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns a range of Records between specified indices.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="startIndex">The starting index (defaults to 0)</param>
		/// <param name="endIndex">The ending index (defaults to the last Record in the Store)</param>
		/// <returns>An array of Records</returns>
		[ScriptName("getRange")]
		public ext.data.RecordClass[] GetRange(System.Number startIndex, System.Number endIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns a range of Records between specified indices.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="startIndex">The starting index (defaults to 0)</param>
		/// <returns>An array of Records</returns>
		[ScriptName("getRange")]
		public ext.data.RecordClass[] GetRange(System.Number startIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns a range of Records between specified indices.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <returns>An array of Records</returns>
		[ScriptName("getRange")]
		public ext.data.RecordClass[] GetRange()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Reloads the Record cache from the configured Proxy using the configured
		/// {@link Ext.data.Reader Reader} and the options from the last load operation
		/// performed.  Note: see the Important note in {@link #load}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Reloads the Record cache from the configured Proxy using the configured
		/// {@link Ext.data.Reader Reader} and the options from the last load operation
		/// performed.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: see the Important note in {@link #load}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="options">
		/// An &lt;tt&gt;Object&lt;/tt&gt; containing
		/// {@link #load loading options} which may override the {@link #lastOptions options}
		/// used in the last {@link #load} operation. See {@link #load} for details
		/// (defaults to &lt;tt&gt;null&lt;/tt&gt;, in which case the {@link #lastOptions} are
		/// used).&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;To add new params to the existing params:&lt;/p&gt;<c>
		/// lastOptions = myStore.lastOptions;
		/// Ext.apply(lastOptions.params, {
		/// myNewParam: true
		/// });
		/// myStore.reload(lastOptions);
		/// </c>&lt;/pre&gt;
		/// </param>
		[ScriptName("reload")]
		public void Reload(object options)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Reloads the Record cache from the configured Proxy using the configured
		/// {@link Ext.data.Reader Reader} and the options from the last load operation
		/// performed.  Note: see the Important note in {@link #load}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Reloads the Record cache from the configured Proxy using the configured
		/// {@link Ext.data.Reader Reader} and the options from the last load operation
		/// performed.&lt;/p&gt;
		/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: see the Important note in {@link #load}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("reload")]
		public void Reload()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Loads data from a passed data block and fires the {@link #load} event. A {@link Ext.data.Reader Reader}
		/// which understands the format of the data must have been configured in the constructor.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="data">
		/// The data block from which to read the Records. The format of the data expected
		/// is dependent on the type of {@link Ext.data.Reader Reader} that is configured and should correspond to
		/// that {@link Ext.data.Reader Reader}&apos;s &lt;tt&gt;{@link Ext.data.Reader#readRecords}&lt;/tt&gt; parameter.
		/// </param>
		/// <param name="append">
		/// &lt;tt&gt;true&lt;/tt&gt; to append the new Records rather the default to replace
		/// the existing cache.
		/// &lt;b&gt;Note&lt;/b&gt;: that Records in a Store are keyed by their {@link Ext.data.Record#id id}, so added Records
		/// with ids which are already present in the Store will &lt;i&gt;replace&lt;/i&gt; existing Records. Only Records with
		/// new, unique ids will be added.
		/// </param>
		[ScriptName("loadData")]
		public void LoadData(object data, bool append)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Loads data from a passed data block and fires the {@link #load} event. A {@link Ext.data.Reader Reader}
		/// which understands the format of the data must have been configured in the constructor.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="data">
		/// The data block from which to read the Records. The format of the data expected
		/// is dependent on the type of {@link Ext.data.Reader Reader} that is configured and should correspond to
		/// that {@link Ext.data.Reader Reader}&apos;s &lt;tt&gt;{@link Ext.data.Reader#readRecords}&lt;/tt&gt; parameter.
		/// </param>
		[ScriptName("loadData")]
		public void LoadData(object data)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the default sort column and order to be used by the next {@link #load} operation.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by.</param>
		/// <param name="dir">The sort order, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive, defaults to &lt;tt&gt;&apos;ASC&apos;&lt;/tt&gt;)</param>
		[ScriptName("setDefaultSort")]
		public void SetDefaultSort(string fieldName, string dir)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the default sort column and order to be used by the next {@link #load} operation.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by.</param>
		[ScriptName("setDefaultSort")]
		public void SetDefaultSort(string fieldName)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sort the Records.
		/// If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local
		/// sorting is used, the cache is sorted internally. See also {@link #remoteSort} and {@link #paramNames}.
		/// This function accepts two call signatures - pass in a field name as the first argument to sort on a single
		/// field, or pass in an array of sort configuration objects to sort by multiple fields.
		/// Single sort example:
		/// store.sort(&apos;name&apos;, &apos;ASC&apos;);
		/// Multi sort example:
		/// store.sort([
		/// {
		/// field : &apos;name&apos;,
		/// direction: &apos;ASC&apos;
		/// },
		/// {
		/// field : &apos;salary&apos;,
		/// direction: &apos;DESC&apos;
		/// }
		/// ], &apos;ASC&apos;);
		/// In this second form, the sort configs are applied in order, with later sorters sorting within earlier sorters&apos; results.
		/// For example, if two records with the same name are present they will also be sorted by salary if given the sort configs
		/// above. Any number of sort configs can be added.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by, or an array of ordered sort configs</param>
		/// <param name="dir">The sort order, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive, defaults to &lt;tt&gt;&apos;ASC&apos;&lt;/tt&gt;)</param>
		[ScriptName("sort")]
		public void Sort(string fieldName, string dir)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sort the Records.
		/// If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local
		/// sorting is used, the cache is sorted internally. See also {@link #remoteSort} and {@link #paramNames}.
		/// This function accepts two call signatures - pass in a field name as the first argument to sort on a single
		/// field, or pass in an array of sort configuration objects to sort by multiple fields.
		/// Single sort example:
		/// store.sort(&apos;name&apos;, &apos;ASC&apos;);
		/// Multi sort example:
		/// store.sort([
		/// {
		/// field : &apos;name&apos;,
		/// direction: &apos;ASC&apos;
		/// },
		/// {
		/// field : &apos;salary&apos;,
		/// direction: &apos;DESC&apos;
		/// }
		/// ], &apos;ASC&apos;);
		/// In this second form, the sort configs are applied in order, with later sorters sorting within earlier sorters&apos; results.
		/// For example, if two records with the same name are present they will also be sorted by salary if given the sort configs
		/// above. Any number of sort configs can be added.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by, or an array of ordered sort configs</param>
		/// <param name="dir">The sort order, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive, defaults to &lt;tt&gt;&apos;ASC&apos;&lt;/tt&gt;)</param>
		[ScriptName("sort")]
		public void Sort(System.Array fieldName, string dir)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sort the Records.
		/// If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local
		/// sorting is used, the cache is sorted internally. See also {@link #remoteSort} and {@link #paramNames}.
		/// This function accepts two call signatures - pass in a field name as the first argument to sort on a single
		/// field, or pass in an array of sort configuration objects to sort by multiple fields.
		/// Single sort example:
		/// store.sort(&apos;name&apos;, &apos;ASC&apos;);
		/// Multi sort example:
		/// store.sort([
		/// {
		/// field : &apos;name&apos;,
		/// direction: &apos;ASC&apos;
		/// },
		/// {
		/// field : &apos;salary&apos;,
		/// direction: &apos;DESC&apos;
		/// }
		/// ], &apos;ASC&apos;);
		/// In this second form, the sort configs are applied in order, with later sorters sorting within earlier sorters&apos; results.
		/// For example, if two records with the same name are present they will also be sorted by salary if given the sort configs
		/// above. Any number of sort configs can be added.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by, or an array of ordered sort configs</param>
		[ScriptName("sort")]
		public void Sort(string fieldName)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sort the Records.
		/// If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local
		/// sorting is used, the cache is sorted internally. See also {@link #remoteSort} and {@link #paramNames}.
		/// This function accepts two call signatures - pass in a field name as the first argument to sort on a single
		/// field, or pass in an array of sort configuration objects to sort by multiple fields.
		/// Single sort example:
		/// store.sort(&apos;name&apos;, &apos;ASC&apos;);
		/// Multi sort example:
		/// store.sort([
		/// {
		/// field : &apos;name&apos;,
		/// direction: &apos;ASC&apos;
		/// },
		/// {
		/// field : &apos;salary&apos;,
		/// direction: &apos;DESC&apos;
		/// }
		/// ], &apos;ASC&apos;);
		/// In this second form, the sort configs are applied in order, with later sorters sorting within earlier sorters&apos; results.
		/// For example, if two records with the same name are present they will also be sorted by salary if given the sort configs
		/// above. Any number of sort configs can be added.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by, or an array of ordered sort configs</param>
		[ScriptName("sort")]
		public void Sort(System.Array fieldName)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sorts the store contents by a single field and direction. This is called internally by {@link sort} and would
		/// not usually be called manually
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by.</param>
		/// <param name="dir">The sort order, &apos;ASC&apos; or &apos;DESC&apos; (case-sensitive, defaults to &lt;tt&gt;&apos;ASC&apos;&lt;/tt&gt;)</param>
		[ScriptName("singleSort")]
		public void SingleSort(string fieldName, string dir)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sorts the store contents by a single field and direction. This is called internally by {@link sort} and would
		/// not usually be called manually
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the field to sort by.</param>
		[ScriptName("singleSort")]
		public void SingleSort(string fieldName)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Calls the specified function for each of the {@link Ext.data.Record Records} in the cache.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to call. The {@link Ext.data.Record Record} is passed as the first parameter.
		/// Returning &lt;tt&gt;false&lt;/tt&gt; aborts and exits the iteration.
		/// </param>
		/// <param name="scope">
		/// The scope (<c>this</c> reference) in which the function is executed.
		/// Defaults to the current {@link Ext.data.Record Record} in the iteration.
		/// </param>
		[ScriptName("each")]
		public void Each(System.Delegate fn, object scope)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Calls the specified function for each of the {@link Ext.data.Record Records} in the cache.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to call. The {@link Ext.data.Record Record} is passed as the first parameter.
		/// Returning &lt;tt&gt;false&lt;/tt&gt; aborts and exits the iteration.
		/// </param>
		[ScriptName("each")]
		public void Each(System.Delegate fn)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sums the value of property for each {@link Ext.data.Record record} between start
		/// and end and returns the result.
		/// </summary>
		/// <htmlSummary>
		/// Sums the value of &lt;tt&gt;property&lt;/tt&gt; for each {@link Ext.data.Record record} between &lt;tt&gt;start&lt;/tt&gt;
		/// and &lt;tt&gt;end&lt;/tt&gt; and returns the result.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="property">A field in each record</param>
		/// <param name="start">The record index to start at (defaults to &lt;tt&gt;0&lt;/tt&gt;)</param>
		/// <param name="end">The last record index to include (defaults to length - 1)</param>
		/// <returns>The sum</returns>
		[ScriptName("sum")]
		public System.Number Sum(string property, System.Number start, System.Number end)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sums the value of property for each {@link Ext.data.Record record} between start
		/// and end and returns the result.
		/// </summary>
		/// <htmlSummary>
		/// Sums the value of &lt;tt&gt;property&lt;/tt&gt; for each {@link Ext.data.Record record} between &lt;tt&gt;start&lt;/tt&gt;
		/// and &lt;tt&gt;end&lt;/tt&gt; and returns the result.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="property">A field in each record</param>
		/// <param name="start">The record index to start at (defaults to &lt;tt&gt;0&lt;/tt&gt;)</param>
		/// <returns>The sum</returns>
		[ScriptName("sum")]
		public System.Number Sum(string property, System.Number start)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sums the value of property for each {@link Ext.data.Record record} between start
		/// and end and returns the result.
		/// </summary>
		/// <htmlSummary>
		/// Sums the value of &lt;tt&gt;property&lt;/tt&gt; for each {@link Ext.data.Record record} between &lt;tt&gt;start&lt;/tt&gt;
		/// and &lt;tt&gt;end&lt;/tt&gt; and returns the result.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="property">A field in each record</param>
		/// <returns>The sum</returns>
		[ScriptName("sum")]
		public System.Number Sum(string property)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// 
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// </summary>
		/// <htmlSummary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// &lt;pre&gt;&lt;code&gt;
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records, or an array containing multiple filter options</param>
		/// <param name="value">
		/// Either a string that the field should begin with, or a RegExp to test
		/// against the field.
		/// </param>
		/// <param name="anyMatch">&lt;tt&gt;true&lt;/tt&gt; to match any part not just the beginning</param>
		/// <param name="caseSensitive">&lt;tt&gt;true&lt;/tt&gt; for case sensitive comparison</param>
		/// <param name="exactMatch">True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.</param>
		[ScriptName("filter")]
		public void Filter(string field, string value, bool anyMatch, bool caseSensitive, bool exactMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// 
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// </summary>
		/// <htmlSummary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// &lt;pre&gt;&lt;code&gt;
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records, or an array containing multiple filter options</param>
		/// <param name="value">
		/// Either a string that the field should begin with, or a RegExp to test
		/// against the field.
		/// </param>
		/// <param name="anyMatch">&lt;tt&gt;true&lt;/tt&gt; to match any part not just the beginning</param>
		/// <param name="caseSensitive">&lt;tt&gt;true&lt;/tt&gt; for case sensitive comparison</param>
		/// <param name="exactMatch">True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.</param>
		[ScriptName("filter")]
		public void Filter(string field, System.RegularExpression value, bool anyMatch, bool caseSensitive, bool exactMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// 
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// </summary>
		/// <htmlSummary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// &lt;pre&gt;&lt;code&gt;
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records, or an array containing multiple filter options</param>
		/// <param name="value">
		/// Either a string that the field should begin with, or a RegExp to test
		/// against the field.
		/// </param>
		/// <param name="anyMatch">&lt;tt&gt;true&lt;/tt&gt; to match any part not just the beginning</param>
		/// <param name="caseSensitive">&lt;tt&gt;true&lt;/tt&gt; for case sensitive comparison</param>
		/// <param name="exactMatch">True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.</param>
		[ScriptName("filter")]
		public void Filter(System.Array field, string value, bool anyMatch, bool caseSensitive, bool exactMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// 
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// </summary>
		/// <htmlSummary>
		/// Filter the {@link Ext.data.Record records} by a specified property. Alternatively, pass an array of filter
		/// options to filter by more than one property.
		/// Single filter example:
		/// store.filter(&apos;name&apos;, &apos;Ed&apos;, true, true); //finds all records containing the substring &apos;Ed&apos;
		/// Multiple filter example:
		/// &lt;pre&gt;&lt;code&gt;
		/// store.filter([
		/// {
		/// property : &apos;name&apos;,
		/// value : &apos;Ed&apos;,
		/// anyMatch : true, //optional, defaults to true
		/// caseSensitive: true //optional, defaults to true
		/// },
		///
		/// //filter functions can also be passed
		/// {
		/// fn : function(record) {
		/// return record.get(&apos;age&apos;) == 24
		/// },
		/// scope: this
		/// }
		/// ]);
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records, or an array containing multiple filter options</param>
		/// <param name="value">
		/// Either a string that the field should begin with, or a RegExp to test
		/// against the field.
		/// </param>
		/// <param name="anyMatch">&lt;tt&gt;true&lt;/tt&gt; to match any part not just the beginning</param>
		/// <param name="caseSensitive">&lt;tt&gt;true&lt;/tt&gt; for case sensitive comparison</param>
		/// <param name="exactMatch">True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.</param>
		[ScriptName("filter")]
		public void Filter(System.Array field, System.RegularExpression value, bool anyMatch, bool caseSensitive, bool exactMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter by a function. The specified function will be called for each
		/// Record in this Store. If the function returns true the Record is included,
		/// otherwise it is filtered out.
		/// </summary>
		/// <htmlSummary>
		/// Filter by a function. The specified function will be called for each
		/// Record in this Store. If the function returns &lt;tt&gt;true&lt;/tt&gt; the Record is included,
		/// otherwise it is filtered out.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the function is executed. Defaults to this Store.</param>
		[ScriptName("filterBy")]
		public void FilterBy(System.Delegate fn, object scope)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Filter by a function. The specified function will be called for each
		/// Record in this Store. If the function returns true the Record is included,
		/// otherwise it is filtered out.
		/// </summary>
		/// <htmlSummary>
		/// Filter by a function. The specified function will be called for each
		/// Record in this Store. If the function returns &lt;tt&gt;true&lt;/tt&gt; the Record is included,
		/// otherwise it is filtered out.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		[ScriptName("filterBy")]
		public void FilterBy(System.Delegate fn)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="anyMatch">True to match any part not just the beginning</param>
		/// <param name="caseSensitive">True for case sensitive comparison</param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, string value, bool anyMatch, bool caseSensitive)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="anyMatch">True to match any part not just the beginning</param>
		/// <param name="caseSensitive">True for case sensitive comparison</param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, System.RegularExpression value, bool anyMatch, bool caseSensitive)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="anyMatch">True to match any part not just the beginning</param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, string value, bool anyMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="anyMatch">True to match any part not just the beginning</param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, System.RegularExpression value, bool anyMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, string value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Query the records by a specified property.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="field">A field on your records</param>
		/// <param name="value">
		/// Either a string that the field
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("query")]
		public System.Array Query(string field, System.RegularExpression value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Query the cached records in this Store using a filtering function. The specified function
		/// will be called with each record in this Store. If the function returns true the record is
		/// included in the results.
		/// </summary>
		/// <htmlSummary>
		/// Query the cached records in this Store using a filtering function. The specified function
		/// will be called with each record in this Store. If the function returns &lt;tt&gt;true&lt;/tt&gt; the record is
		/// included in the results.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the function is executed. Defaults to this Store.</param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("queryBy")]
		public System.Array QueryBy(System.Delegate fn, object scope)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Query the cached records in this Store using a filtering function. The specified function
		/// will be called with each record in this Store. If the function returns true the record is
		/// included in the results.
		/// </summary>
		/// <htmlSummary>
		/// Query the cached records in this Store using a filtering function. The specified function
		/// will be called with each record in this Store. If the function returns &lt;tt&gt;true&lt;/tt&gt; the record is
		/// included in the results.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <returns>Returns an Ext.util.MixedCollection of the matched records</returns>
		[ScriptName("queryBy")]
		public System.Array QueryBy(System.Delegate fn)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <param name="anyMatch">True to match any part of the string, not just the beginning</param>
		/// <param name="caseSensitive">True for case sensitive comparison</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, string value, System.Number startIndex, bool anyMatch, bool caseSensitive)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <param name="anyMatch">True to match any part of the string, not just the beginning</param>
		/// <param name="caseSensitive">True for case sensitive comparison</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, System.RegularExpression value, System.Number startIndex, bool anyMatch, bool caseSensitive)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <param name="anyMatch">True to match any part of the string, not just the beginning</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, string value, System.Number startIndex, bool anyMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <param name="anyMatch">True to match any part of the string, not just the beginning</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, System.RegularExpression value, System.Number startIndex, bool anyMatch)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, string value, System.Number startIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, System.RegularExpression value, System.Number startIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, string value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">
		/// Either a string that the field value
		/// should begin with, or a RegExp to test against the field.
		/// </param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("find")]
		public System.Number Find(string fieldName, System.RegularExpression value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">The value to match the field against.</param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("findExact")]
		public System.Number FindExact(string fieldName, object value, System.Number startIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Finds the index of the first matching Record in this store by a specific field value.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fieldName">The name of the Record field to test.</param>
		/// <param name="value">The value to match the field against.</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("findExact")]
		public System.Number FindExact(string fieldName, object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns true it is considered a match.
		/// </summary>
		/// <htmlSummary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns &lt;tt&gt;true&lt;/tt&gt; it is considered a match.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the function is executed. Defaults to this Store.</param>
		/// <param name="startIndex">The index to start searching at</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("findBy")]
		public System.Number FindBy(System.Delegate fn, object scope, System.Number startIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns true it is considered a match.
		/// </summary>
		/// <htmlSummary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns &lt;tt&gt;true&lt;/tt&gt; it is considered a match.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the function is executed. Defaults to this Store.</param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("findBy")]
		public System.Number FindBy(System.Delegate fn, object scope)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns true it is considered a match.
		/// </summary>
		/// <htmlSummary>
		/// Find the index of the first matching Record in this Store by a function.
		/// If the function returns &lt;tt&gt;true&lt;/tt&gt; it is considered a match.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="fn">
		/// The function to be called. It will be passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record record}
		/// to test for filtering. Access field values using {@link Ext.data.Record#get}.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;id&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The ID of the Record passed.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		/// <returns>The matched index or -1</returns>
		[ScriptName("findBy")]
		public System.Number FindBy(System.Delegate fn)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Collects unique values for a particular dataIndex from this store.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="dataIndex">The property to collect</param>
		/// <param name="allowNull">Pass true to allow null, undefined or empty string values</param>
		/// <param name="bypassFilter">Pass true to collect from all records, even ones which are filtered</param>
		/// <returns>An array of the unique values</returns>
		[ScriptName("collect")]
		public System.Array Collect(string dataIndex, bool allowNull, bool bypassFilter)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Collects unique values for a particular dataIndex from this store.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="dataIndex">The property to collect</param>
		/// <param name="allowNull">Pass true to allow null, undefined or empty string values</param>
		/// <returns>An array of the unique values</returns>
		[ScriptName("collect")]
		public System.Array Collect(string dataIndex, bool allowNull)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Collects unique values for a particular dataIndex from this store.</summary>
		/// <definedin>src\data\Store.js</definedin>
		/// <param name="dataIndex">The property to collect</param>
		/// <returns>An array of the unique values</returns>
		[ScriptName("collect")]
		public System.Array Collect(string dataIndex)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>
		/// Fires when the data cache has changed in a bulk manner (e.g., it has been sorted, filtered, etc.) and a
		/// widget that is using this Store as a Record cache should refresh its view.
		/// </summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("datachanged")]
		public event ext.auto.Delegate_ext_data_Store Datachanged;
		
		/// <summary>Fires when this store&apos;s reader provides new metadata (fields). This is currently only supported for JsonReaders.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("metachange")]
		public event ext.auto.Delegate_ext_data_Store_And_System_Object Metachange;
		
		/// <summary>Fires when Records have been {@link #add}ed to the Store</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("add")]
		public event ext.auto.Delegate_ext_data_Store_And_ext_data_RecordClassArray_And_System_Number Add;
		
		/// <summary>Fires when a Record has been {@link #remove}d from the Store</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("remove")]
		public event ext.auto.Delegate_ext_data_Store_And_ext_data_RecordClass_And_System_Number Remove;
		
		/// <summary>Fires when a Record has been updated</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("update")]
		public event ext.auto.Delegate_ext_data_Store_And_ext_data_RecordClass_And_System_String Update;
		
		/// <summary>Fires when the data cache has been cleared.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("clear")]
		public event ext.auto.Delegate_ext_data_Store_And_ext_data_RecordClassArray Clear;
		
		/// <summary>
		/// Fires if an exception occurs in the Proxy during a remote request.
		/// This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#exception exception}
		/// for additional details.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Fires if an exception occurs in the Proxy during a remote request.
		/// This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#exception exception}
		/// for additional details.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("exception")]
		public event ext.auto.Delegate_System_Object Exception;
		
		/// <summary>
		/// Fires before a request is made for a new data object. If the beforeload handler returns
		/// false the {@link #load} action will be canceled.
		/// </summary>
		/// <htmlSummary>
		/// Fires before a request is made for a new data object. If the beforeload handler returns
		/// &lt;tt&gt;false&lt;/tt&gt; the {@link #load} action will be canceled.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforeload")]
		public event ext.auto.Delegate_ext_data_Store_And_System_Object Beforeload;
		
		/// <summary>Fires after a new set of Records has been loaded.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("load")]
		public event ext.auto.Delegate_ext_data_Store_And_ext_data_RecordClassArray_And_System_Object Load;
		
		/// <summary>
		/// This event is deprecated in favor of the catch-all {@link #exception}
		/// event instead.  This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#loadexception loadexception}
		/// for additional details.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;This event is &lt;b&gt;deprecated&lt;/b&gt; in favor of the catch-all &lt;b&gt;&lt;code&gt;{@link #exception}&lt;/code&gt;&lt;/b&gt;
		/// event instead.&lt;/p&gt;
		/// &lt;p&gt;This event is relayed through the corresponding {@link Ext.data.DataProxy}.
		/// See {@link Ext.data.DataProxy}.{@link Ext.data.DataProxy#loadexception loadexception}
		/// for additional details.
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("loadexception")]
		public event ext.auto.Delegate_System_Object Loadexception;
		
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforewrite")]
		public event ext.auto.Delegate_ext_data_Store_And_System_String_And_ext_auto_ext_data_RecordClass_Or_ext_data_RecordClassArray_And_System_Object_And_System_Object Beforewrite;
		
		/// <summary>
		/// Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
		/// Success of the action is determined in the result[&apos;successProperty&apos;]property (NOTE for RESTful stores,
		/// a simple 20x response is sufficient for the actions &quot;destroy&quot; and &quot;update&quot;. The &quot;create&quot; action should should return 200 along with a database pk).
		/// </summary>
		/// <htmlSummary>
		/// Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
		/// Success of the action is determined in the &lt;code&gt;result[&apos;successProperty&apos;]&lt;/code&gt;property (&lt;b&gt;NOTE&lt;/b&gt; for RESTful stores,
		/// a simple 20x response is sufficient for the actions &quot;destroy&quot; and &quot;update&quot;. The &quot;create&quot; action should should return 200 along with a database pk).
		/// </htmlSummary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("write")]
		public event ext.auto.Delegate_ext_data_Store_And_System_String_And_System_Object_And_ext_Direct_Transaction_And_ext_auto_ext_data_RecordClass_Or_ext_data_RecordClassArray Write;
		
		/// <summary>Fires before a save action is called. A save encompasses destroying records, updating records and creating records.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("beforesave")]
		public event ext.auto.Delegate_ext_data_Store_And_System_Object Beforesave;
		
		/// <summary>Fires after a save is completed. A save encompasses destroying records, updating records and creating records.</summary>
		/// <definedin>src\data\Store.js</definedin>
		[ScriptName("save")]
		public event ext.auto.Delegate_ext_data_Store_And_System_Number_And_System_Object Save;
		#endregion
	}
}
